<button class="button">
  <span class="base"></span>
  <span class="red"></span>
</button>
<style>
/* From Uiverse.io by r7chardgh - Tags: 3d, button, nuclear-button */
.button {
  display: flex;
  position: relative;
  background: none;
  border: 0;
  transform-style: preserve-3d;
  transform: rotateX(45deg)rotateZ(45deg);
  cursor: pointer;
}

.button > .red {
  position: absolute;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  background-color: rgb(255, 49, 49);
  transform: translate(-50%,-50%);
  transform-style: preserve-3d;
  display: flex;
  justify-content: center;
  align-items: center;
}

.red::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1em;
  left: 0;
  background-color: rgb(255, 49, 49);
  transform: rotateZ(-45deg) translateY(-.5em);
  transition: height 150ms, transform 150ms;
}

.red::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  border-radius: 50%;
  background-color: rgb(255, 49, 49);
  transform: rotateZ(-45deg) translateY(-1em);
  transition: transform 150ms;
  border: 1px solid rgb(255, 196, 196);
}

.button > .base {
  position: relative;
  width: 3em;
  height: 3em;
  background-color: rgb(245, 216, 90);
  transform-style: preserve-3d;
  border-bottom: 1px solid rgb(255, 255, 255);
  border-right: 1px solid rgb(255, 255, 255);
}

.base::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgb(245, 216, 90);
  transform-origin: bottom;
  transform: rotateX(90deg);
  border-right: 1px solid #fff;
}

.base::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgb(245, 216, 90);
  transform-origin: right;
  transform: rotateY(-90deg);
  border-left: 1px solid #fff;
}

.button:active>.red::before {
  transform: rotateZ(-45deg) translateY(0);
  height: 0;
}

.button:active>.red::after {
  transform: rotateZ(-45deg) translateY(0);
}


</style>
